<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="shiro" uri="http://shiro.apache.org/tags" %> 
<%@taglib prefix="my" tagdir="/WEB-INF/tags" %> 
<html>
<head>
    <title>首页</title>
</head>
<body>

<shiro:guest>  
欢迎游客访问，<a href="${pageContext.request.contextPath}/login.jsp">登录</a>  <br/>
</shiro:guest>

<shiro:user>  
欢迎[<shiro:principal/>]登录，<a href="${pageContext.request.contextPath}/logout">退出</a>  <br/>
</shiro:user>


<shiro:authenticated>  
    用户[<shiro:principal/>]已身份验证通过  <br/>
</shiro:authenticated>
<!-- 用户已经身份验证通过，即Subject.login登录成功，不是记住我登录的。  -->



<shiro:notAuthenticated>
    未身份验证（包括记住我）<br/>
</shiro:notAuthenticated> 
<!-- 用户已经身份验证通过，即没有调用Subject.login进行登录，包括记住我自动登录的也属于未进行身份验证 -->


<shiro:authenticated>  
    String type principal: <shiro:principal type="java.lang.String"/>, 相当于Subject.getPrincipals().oneByType(String.class)。<br/>
</shiro:authenticated>


<shiro:authenticated> 
   <%-- username property principal: <shiro:principal property="username"/>, 相当于((User)Subject.getPrincipals()).getUsername()。--%>
</shiro:authenticated>
<br>
<shiro:hasRole name="admin">  
    用户[<shiro:principal/>]拥有角色admin<br/>  
</shiro:hasRole>
<br/><shiro:hasAnyRoles name="admin,user">  
    用户[<shiro:principal/>]拥有角色admin或user<br/>  
</shiro:hasAnyRoles>

<shiro:lacksRole name="abc">  
    用户[<shiro:principal/>]没有角色abc<br/>  
</shiro:lacksRole> 

<shiro:hasPermission name="user:create">  
    用户[<shiro:principal/>]拥有权限user:create<br/>  
</shiro:hasPermission>

<zhang:hasAllRoles name="admin,user">  
    用户[<shiro:principal/>]拥有角色admin和user<br/>  
</zhang:hasAllRoles>  
<zhang:hasAllPermissions name="user:create,user:update">  
    用户[<shiro:principal/>]拥有权限user:create和user:update<br/>  
</zhang:hasAllPermissions>  
<zhang:hasAnyPermissions name="user:create,abc:update">  
    用户[<shiro:principal/>]拥有权限user:create或abc:update<br/>  
</zhang:hasAnyPermissions>  

</body>
</html>